﻿<%@ Page Language="C#" %>
<%@ Register TagPrefix="IRL" TagName="SideBar" Src="SideBar.ascx" %>
<%@ Import Namespace="IRL.Utilities" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
    public const int CURRENT_MODULE = 1;

    Hashtable ptype_lookup, rcat_lookup;
    StringBuilder menu_structure;

    protected void Page_Load(object sender, EventArgs e)
    {
        Security SysAcc = new Security(CURRENT_MODULE);
        // check is authenticate
        SysAcc.Authenticate();

        // load reminder count  
        //Mics.loadReminderCount(lblReminderCount);

        InitLookUp();

        SideBar1.loadData();
        if (!Page.IsPostBack)
        {
            grid1.Attributes.Add("sortFld", "");
            grid1.Attributes.Add("sortDir", "");
            searchProject();
        }
        
    }

    void InitLookUp()
    {
        object connStr = ConfigurationSettings.AppSettings["sqlConn"];
        using (SqlConnection conn = new SqlConnection(connStr.ToString()))
        {
            ptype_lookup = Lookup.Fill("sp_Select_cms_Lookup 'project_type'", conn);
            rcat_lookup = Lookup.Fill("sp_Select_cms_Lookup 'research_category_s'", conn);
        }
    }

    void rebind()
    {
        string market = "";
        if (Request.Cookies["office"] != null)
            market = Request.Cookies["office"].Value;
        menu_structure = new StringBuilder(512);
        
        object connStr = ConfigurationSettings.AppSettings["sqlConn"];
        using (SqlConnection conn = new SqlConnection(connStr.ToString()))
        {
            SqlDataAdapter cmd = new SqlDataAdapter("sp_SearchProject", conn);
            cmd.SelectCommand.CommandType = CommandType.StoredProcedure;
            cmd.SelectCommand.Parameters.Add("@search", SqlDbType.NVarChar, 80).Value = SideBar1.search;
            cmd.SelectCommand.Parameters.Add("@userid", SqlDbType.Int).Value = Request.Cookies["irl_id"].Value;
            cmd.SelectCommand.Parameters.Add("@client", SqlDbType.Int).Value = SideBar1.client;
            if (market != "")
                cmd.SelectCommand.Parameters.Add("@market", SqlDbType.Int).Value = market;

            conn.Open();
            DataTable dt = new DataTable();
            DataView dv;
            cmd.Fill(dt);
            dv = dt.DefaultView;
            dv.Sort = grid1.Attributes["sortFld"] + " " + grid1.Attributes["sortDir"];
            grid1.DataSource = dv;
            grid1.DataBind();
        }
        // Register menu_structure
        RegisterClientScriptBlock("menu_structure", "<script>" + menu_structure.ToString() + "</" + "script>");
    }
    

    void searchProject()
    {
        //Response.Write(Context.Items["cboClient"].ToString());
        //int clientID = Convert.ToInt32(cboClient.SelectedValue);
        //if (Context.Items.Count > 1)
        //{
        string market="";
        if (Request.Cookies["office"] != null)
            market = Request.Cookies["office"].Value;
        if (SideBar1.IsPostBack) // !!!
        {
            menu_structure = new StringBuilder(512);
            //int client = Convert.ToInt32(Context.Items["cboClient"]);
            //string search = Context.Items["txtSearch"].ToString();
            //int client = Convert.ToInt32(SideBar1.client);
            object connStr = ConfigurationSettings.AppSettings["sqlConn"];
            using (SqlConnection conn = new SqlConnection(connStr.ToString()))
            {
                SqlCommand cmd = new SqlCommand("sp_SearchProject", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@search", SqlDbType.NVarChar, 80).Value = SideBar1.search;
                cmd.Parameters.Add("@userid", SqlDbType.Int).Value = Request.Cookies["irl_id"].Value;
                cmd.Parameters.Add("@client", SqlDbType.Int).Value = SideBar1.client;
                if (market != "")
                    cmd.Parameters.Add("@market", SqlDbType.Int).Value = market;
                
                conn.Open();
                SqlDataReader dr = cmd.ExecuteReader();
                grid1.DataSource = dr;
                grid1.DataBind();
            }
            // Register menu_structure
            RegisterClientScriptBlock("menu_structure", "<script>" + menu_structure.ToString() + "</" + "script>");
        }
        //}
    }

    protected void grid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            int ind = e.Item.ItemIndex;
            string pid = e.Item.Cells[0].Text;
            string oid = e.Item.Cells[1].Text;
            string stat = e.Item.Cells[2].Text;

            menu_structure.Append("var menu" + ind + "=new Array(); ");
            menu_structure.Append("menu" + ind + "[0]=\'<a href=\"listAssociatedFiles.aspx?pid=" + pid + "\">Associated Files</a>\'; ");

            if (stat == "Commissioned Already")
            {
                e.Item.Cells[3].Font.Bold = true;
                menu_structure.Append("menu" + ind + "[1]=\'<a href=\"listContactPersons.aspx?pid=" + pid + "&oid=" + oid + "\">Contact Persons</a>\'; ");
                menu_structure.Append("menu" + ind + "[2]=\'<a href=\"listMilestones.aspx?pid=" + pid + "\">Billing Notes</a>\'; ");
            }
            else if (stat == "Not Commissioned")
            {
                e.Item.BackColor = Color.FromArgb(253, 239, 206);
            }
            else
            {
                menu_structure.Append("menu" + ind + "[1]=\'<a href=\"saveProject.aspx?pid=" + pid + "&confirm=1\">Confirm the proposal</a>\'; ");
            }
            
        }
    }

    string editProposal(int ind, string pid, string projectName, string stat)
    {
        string strHTML = "<img src=\"images/dropdown.gif\" align=\"right\" style=\"cursor:pointer;\" onclick=\"dropdownmenu(this, event, menu"+ ind.ToString() +", \'150px\')\" onMouseOut=\"delayhidemenu()\" /> ";
        
        if (stat == "Commissioned Already")
        {
            strHTML += "<a href=\"saveProject.aspx?pid="+ pid +"\">"+ projectName +"</a>";
        }
        else if(stat == "Not Commissioned")
        {
            strHTML = "<a href=\"saveProposal.aspx?pid=" + pid + "\">" + projectName + "</a>";
        }
        else
        {
            strHTML += "<a href=\"saveProposal.aspx?pid="+ pid +"\">"+ projectName +"</a>";
        }
        return strHTML;
    }

    protected void grid1_SortCommand(object source, DataGridSortCommandEventArgs e)
    {
        string strSort = grid1.Attributes["sortFld"];
        string strOrder = grid1.Attributes["sortDir"];
        string strSortExpr = e.SortExpression;

        if (strSort == strSortExpr && strOrder == "ASC")
        {
            strOrder = "DESC";
        }
        else
        {
            strOrder = "ASC";
        }

        grid1.Attributes["sortFld"] = strSortExpr;
        grid1.Attributes["sortDir"] = strOrder;
        rebind();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title>Indochina Research</title>
    <link rel="SHORTCUT ICON" href="../irl.ico" type="image/x-icon" />
    <link type="text/css" rel="stylesheet" href="../css/global.css" />
    
    <link type="text/css" rel="stylesheet" href="../css/dropdown_menu.css" />
	<script language="javascript" src="includes/dropdown.js"></script>

</head>

<body>
<table width="773" border="0" cellspacing="0" cellpadding="0" align="center">
	<tr>
		<td width="765" height="540" align="center" valign="top" style="border:solid 1px #10147e;" >
			<!-- header -->
			<table border="0" cellpadding="0" cellspacing="0" width="100%">
				<tr bgcolor="#F4F4F9">
					<td colspan="3" align="right" style="padding:10px;">
						<b class="blueL">Client Management System</b>
					</td>
				</tr>
				<tr>
					<td class="wave_l">&nbsp;</td>
					<td><img src="images/wave_logo.jpg" width="107" height="83"></td>
					<td class="wave_r">&nbsp;</td>
				</tr>
				<tr>
					<td colspan="3" style="padding:0 20px;">
						<div style="background-color:#bcb3d5; padding:5px 10px;">
							<span style="float:right">

								&nbsp;</span>
							<span class="pathmap">
								<a href="default.aspx" >CPanel</a> :: Ops Files
						  </span>
						</div>
						<br />
						
						
					</td>
				</tr>
				
			</table>
			
			<!-- body -->
			<form id="SearchForm" method="post" runat="server">
			<table border="0" width="100%" cellspacing="0" cellpadding="0">
				<tr>
					<td align="center" valign="top" style="padding-left:20px;">
						<table align="left" border="0" cellspacing="0" cellpadding="0">
							<tr>
								<td valign="top">
									<IRL:SideBar ID="SideBar1" runat="server" />
								</td>
								<td width="10"><img src="images/spacer.gif" width="10" height="1" /></td>
								<td valign="top">
									<!-- data row -->
                                    <div style="width:480px; overflow:auto; overflow-y:visible">
                                        <asp:DataGrid CssClass="data" ID="grid1" Width="100%" runat="server" CellSpacing="1" CellPadding="4"
                                            BorderWidth="0" GridLines="none" AutoGenerateColumns="false" AllowSorting="true"
                                            OnItemDataBound="grid1_ItemDataBound" 
                                            OnSortCommand="grid1_SortCommand">
                                            <HeaderStyle CssClass="header" />
                                            <ItemStyle BackColor="#efefef" />
                                            <AlternatingItemStyle BackColor="white" />
                                            <Columns>
                                                <asp:BoundColumn DataField="ProposalID" Visible="false" />
                                                <asp:BoundColumn DataField="ClientID" Visible="false" />
                                                <asp:BoundColumn DataField="Status" Visible="false" />
                                                
                                                <asp:BoundColumn HeaderText="ClientName" DataField="ClientName" SortExpression="ClientName">
                                                    <HeaderStyle Width="180" />
                                                </asp:BoundColumn>
                                                
                                                <asp:TemplateColumn HeaderText="Project Name">
                                                    <HeaderStyle Width="180" />
                                                    <ItemTemplate>
                                                        
                                                        <%# editProposal(Container.ItemIndex, DataBinder.Eval(Container.DataItem, "ProposalID").ToString(), DataBinder.Eval(Container.DataItem, "ProjectName").ToString(), DataBinder.Eval(Container.DataItem, "Status").ToString()) %>
                                                        
                                                    </ItemTemplate>
                                                </asp:TemplateColumn>
                                                
                                                <asp:BoundColumn HeaderText="Value" DataField="Costs" DataFormatString="{0:#,##0}" SortExpression="Costs">
                                                    <HeaderStyle Width="50" />
                                                </asp:BoundColumn>
                                                
                                                <asp:TemplateColumn HeaderText="Type" SortExpression="ProjectType">
                                                    <HeaderStyle Width="25" />
                                                    <ItemTemplate>
                                                        <%# ptype_lookup[DataBinder.Eval(Container.DataItem, "ProjectType").ToString()]%>
                                                    </ItemTemplate>
                                                </asp:TemplateColumn>
                                                
                                                <asp:TemplateColumn HeaderText="Sector" SortExpression="ResearchCategory">
                                                    <HeaderStyle Width="25" />
                                                    <ItemTemplate>
                                                        <%# rcat_lookup[DataBinder.Eval(Container.DataItem, "ResearchCategory").ToString()]%>
                                                    </ItemTemplate>
                                                </asp:TemplateColumn>
                                                
                                            </Columns>
                                        </asp:DataGrid>
                                    </div>
                                    <p>&nbsp;</p>
								</td>
							</tr>
						</table>
					</td>
				</tr>
			</table>
			</form>
			
		</td>
		
		<td width="6" class="rightShadow" valign="top">
			<img src="images/white.gif" width="6" height="6" /></td>
	</tr>
	
	<!-- bottom shadow -->
	<tr>
		<td height="6" class="bottomShadow">
			<img src="images/white.gif" width="6" height="6" /></td>
		
		<td width="6" height="6">
			<img src="images/shadow_corner.gif" width="6" height="6" /></td>
	</tr>
</table>


</body>
</html>
